// Vercel无服务器函数格式的Deepseek API处理程序
const axios = require("axios");

// Deepseek API配置
const DEEPSEEK_API_URL = "https://api.deepseek.com/v1/chat/completions";

module.exports = async (req, res) => {
  // 设置CORS头
  res.setHeader("Access-Control-Allow-Credentials", true);
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader(
    "Access-Control-Allow-Methods",
    "GET,OPTIONS,PATCH,DELETE,POST,PUT"
  );
  res.setHeader(
    "Access-Control-Allow-Headers",
    "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version"
  );

  // 处理OPTIONS请求（预检请求）
  if (req.method === "OPTIONS") {
    return res.status(200).end();
  }

  // 只处理POST请求
  if (req.method !== "POST") {
    return res.status(405).json({ error: "方法不允许" });
  }

  try {
    const { message } = req.body;

    if (!message) {
      return res.status(400).json({ error: "消息不能为空" });
    }

    // 准备发送到Deepseek API的请求
    const deepseekRequest = {
      model: "deepseek-chat", // 使用适当的模型名称
      messages: [
        {
          role: "system",
          content:
            "你是创新科技的AI助手，负责回答用户关于公司产品和服务的问题。公司产品包括智能手表、智能音箱和无线耳机等。请提供专业、友好的回答。",
        },
        {
          role: "user",
          content: message,
        },
      ],
      temperature: 0.7,
      max_tokens: 500,
    };

    // 调用Deepseek API
    const response = await axios.post(DEEPSEEK_API_URL, deepseekRequest, {
      headers: {
        "Content-Type": "application/json",
        Authorization: `Bearer sk-980ecc7694e14620a29b5d679a3d1c05`,
      },
    });

    // 提取并返回AI的回复
    const aiResponse = response.data.choices[0].message.content;
    return res.status(200).json({ response: aiResponse });
  } catch (error) {
    console.error("调用Deepseek API时出错:", error);

    // 返回适当的错误消息
    if (error.response) {
      // Deepseek API返回的错误
      return res.status(error.response.status).json({
        error: "调用AI服务时出错",
        details: error.response.data,
      });
    } else {
      // 其他错误
      return res.status(500).json({
        error: "服务器内部错误",
        message: error.message,
      });
    }
  }
};
